#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Project    : AutomatedTesting
# @Name       : settings.py
# @IDE        : PyCharm
# @Author     : OneYoung
# @Created    : 2025/8/24 20:13
# @Desc       : 主要配置文件

import os

# ================================================= #
# ******************** 环境配置  ******************** #
# ================================================= #
""" 是否测试环境 """
DEBUG = True  # 生产环境时，DEBUG需要更改为False

"""引入环境配置"""
if not DEBUG:
    from application.env.prod import *
else:
    from application.env.testing import *

# ================================================= #
# ******************* 数据库配置  ******************* #
# ================================================= #
DATABASE_URL = "mysql://{user}:{password}@{host}:{port}/{database}".format(**DB_CONFIG)
REDIS_DB_URL = "redis://{username}:{password}@{host}:{port}/{db}".format(**REDIS_CONFIG)

# ================================================= #
# ******************** 路径配置  ******************** #
# ================================================= #
""" 项目根目录 """
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
""" 测试用例存放路径 """
CASE_DIR = os.path.join(BASE_DIR, 'test_dir')
UI_CASE_DIR = os.path.join(CASE_DIR, 'website', 'test_cases')
API_CASE_DIR = os.path.join(CASE_DIR, 'interfaces', 'test_cases')
""" 测试数据存放路径 """
UI_DATA_DIR = os.path.join(CASE_DIR, 'website', 'datas')
API_DATA_DIR = os.path.join(CASE_DIR, 'interfaces', 'datas')
""" 测试报告存放路径 """
REPORT_DIR = os.path.join(BASE_DIR, 'reports')

# ================================================= #
# ****************** 日志配置  ******************** #
# ================================================= #
LOG_OUTPUT = True  # 是否显示控制台输出
LOG_CONFIG = dict(
    encoding='utf-8',  # 日志默认编码
    rotation='5Mb',  # 日志分割,大于5M自动分割
    retention='7 days'  # 日志保留7天
)

# ================================================= #
# ***************** 测试报告配置  ******************* #
# ================================================= #
# 项目名称
ALLURE_EPIC = "自动化测试项目"
# 是否启用Allure报告
ALLURE_ENABLE = True
# Allure报告存放地址
ALLURE_REPORT_DIR = os.path.join(REPORT_DIR, 'allure_result')
# 是否清除旧的报告数据
ALLURE_DIR_CLEAN = True
# 是否生成html格式报告
ALLURE_HTML = True
# 是否自动打开生成的html报告
ALLURE_REPORT_OPEN = True

# ================================================= #
# ***************** 用例失败重试  ******************* #
# ================================================= #
# 用来指定用例失败重运行的次数
RERUNS = 0
# 指定每次重运行的时间间隔(s)
RERUNS_DELAY = 1

"""邮件发送测试报告"""
EMAIL_ENABLE = False  # 是否发送邮件
EMAIL_CONFIG = dict(
    host="smtp.qq.com",  # smtp服务器地址
    port=25,  # 端口,目前发送邮件只支持465和25端口
    user="727655151@qq.com",  # 邮箱账号
    password="bboocpkg****uktzbejg",  # smtp服务授权码
    to_addrs=["wangy@grgold.cn"],  # 收件人邮箱地址,单个传字符串,多个传列表
    is_file=True  # 是否发送测试报告附件
)

# ================================================= #
# ******************* 请求配置  ******************* #
# ================================================= #
"""浏览器名称:Chrome/Firefox/Safari/Edge/IE"""
BROWSER_NAME = 'Edge'
"""是否启用无头模式(无界面操作)"""
HEADLESS = False
"""默认请求超时时间(s)"""
TIMEOUT = 10
